import axios from "axios";
import {Message} from "iview";

import store from "@/store";

import config from "@/config";
const {timeout} = config;

/**
 * 此类用来处理 axios
 */

//创建 axios 实例
axios.create({
    // 是否跨站点访问控制请求使用凭证(Cookie)
    withCredentials: true,
    // 配置接口地址
    // baseURL: localStorage.getItem("newBaseAPI") || baseURL,
    // 修改请求的数据再发送到服务器
    // 序列化请求的数据 默认是发送为json的
    transformRequest: [
        // JSON序列化
        data => JSON.stringify(data)
        // 表单 &序列化
        // data => qs.stringify(data)
    ],
    // 修改请求头信息
    // headers: {
    //   'Content-Type': 'application/json'
    // },
    timeout: timeout // 配置请求超时
});

// 添加 axios 实例响应拦截器
axios.interceptors.response.use(response => {
    //结构出data
    const {data} = response;
    //从data中结构出
    const {code, message} = data;
    // 用户 TOKEN 失效
    if (code === 403) {
        // TODO 说明token过期了 要去续约
    }
    // 判断开发环境
    if (code === 200) {
        return data; //响应正确的数据
    }
    Message.error(message); //提示错误信息
}, error => {
    const {response, message, config} = error;
    if (response) {
        store.commit("setResError", response); // 响应错误数据
    } else {
        Message.error({
            content: message
        });
    }
    console.log(config);
});
export default axios;
